Software virtual instruments frequently include a front or instrument panel GUI that accepts user input for the virtual instrument. The front panel provides a graphical representation of input and output variables provided to the virtual instrument. The virtual instruments frequently also include a block diagram connected to the front panel which provides visual representations of a procedure in which displayed input values taken from the front panel can produce a corresponding value for an output variable in the front panel. The virtual instrument may have a hierarchical construction which includes additional virtual instruments.
An example of a type of conventional instrument panel is one constructed using LABVIEW from National Instruments of Austin, Texas.
LABVIEW is a graphical development environment for signal acquisition, measurement analysis and data presentation. Users utilizing the application are able to construct virtual instruments with front instrument panels. LABVIEW provides two components for a virtual instrument, a graphical instrument panel and a data flow diagram. Components in the front panel are connected to the input and output of the data flow diagram. The data flow diagram is compiled into executable code. The results from the execution of the code are provided back to the user through the front panel. There is no programming corresponding directly to the component in the front panel without the use of the data flow diagram.
Another example of conventional software-based graphical instrument panels may be found in VISUAL BASIC from Microsoft Corporation of Redmond, Wash. Visual Basic is a visual interface design package to which a programmer attaches snippets of code for callbacks. Callbacks are registrations in which a software entity/process requests notification upon the occurrence of a designated event occurring. Upon detection of the event, and a subsequent notification, a previously specified execution of programming occurs. For example, a function may be executed upon the occurrence of a particular event.
Unfortunately, both of these conventional methods of setting up software-based graphical instrument panels suffer from several drawbacks. The front panels that are connected to data flow diagrams are dependent on the data flow diagram to perform information processing. Since data flow diagrams are difficult to program for complex computational operations, this limits their effectiveness. Similarly, callback programming is particularly difficult to use when setting up continuously running (multi-component) panels that operate and interface in real-time. The difficulty arises from performing the callbacks required by the multiple components in real-time.